package com.manage.platform.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Null;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.List;

@Accessors(chain = true)
@Data
public class OrganizeDto implements Serializable {

    @Schema(description = "组织ID,修改必传")
    private Long id;

    @Null
    @Schema(description = "创建者用户ID,不传", hidden = true)
    private Long userId;

    @Schema(description = "上级组织ID(0表示顶级组织)")
    private Long parentId;

    @Schema(description = "组织名称")
    private String name;

    @Schema(description = "组织简称")
    private String shortName;

    @Schema(description = "组织描述")
    private String description;

    @Schema(description = "是否在列表公开显示(0:否,1:是)")
    private Integer isPublic = 1;

    @Schema(description = "是否允许创建下级组织(0:否,1:是)")
    private Integer allowCreateSub = 1;

    //组织负责人
    @Schema(description = "组织负责人")
    private OrganizeHeadDto organizeHeadDto;

    //组织分管负责人
    @Schema(description = "组织分管负责人")
    private List<OrganizeHeadNextDto> organizeHeadNextDtoList;

    @Schema(description = "负责人权限")
    private String power;

    @Schema(description = "分管负责人权限")
    private String nextPower;

    //组织成员
    @Schema(description = "组织成员ID集合")
    private List<Long> organizeMemberIdList;

}